/**
 * Created by jiachenpan on 16/11/18.
 */

var $ = require('jquery')

// var utilMd5 = require('@/utils/md5.js')
import { md5 } from '@/utils/md5'

export function parseTime(time, cFormat) {
  if (arguments.length === 0) {
    return null
  }
  const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}'
  let date
  if (typeof time === 'object') {
    date = time
  } else {
    if (('' + time).length === 10) time = parseInt(time) * 1000
    date = new Date(time)
  }
  const formatObj = {
    y: date.getFullYear(),
    m: date.getMonth() + 1,
    d: date.getDate(),
    h: date.getHours(),
    i: date.getMinutes(),
    s: date.getSeconds(),
    a: date.getDay()
  }
  const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {
    let value = formatObj[key]
    if (key === 'a') return ['一', '二', '三', '四', '五', '六', '日'][value - 1]
    if (result.length > 0 && value < 10) {
      value = '0' + value
    }
    return value || 0
  })
  return time_str
}

export function parseDate(time){
  if (arguments.length === 0) {
    return null
  }
  let date = new Date(time)
  let year = date.getFullYear()
  let month = (date.getMonth()+1)<10?'0'+(date.getMonth()+1):(date.getMonth()+1)
  let day = date.getDate()
  let date_str = year+'-'+month+'-'+day
  return date_str
}

export function formatTime(time, option) {
  time = +time * 1000
  const d = new Date(time)
  const now = Date.now()

  const diff = (now - d) / 1000

  if (diff < 30) {
    return '刚刚'
  } else if (diff < 3600) { // less 1 hour
    return Math.ceil(diff / 60) + '分钟前'
  } else if (diff < 3600 * 24) {
    return Math.ceil(diff / 3600) + '小时前'
  } else if (diff < 3600 * 24 * 2) {
    return '1天前'
  }
  if (option) {
    return parseTime(time, option)
  } else {
    return d.getMonth() + 1 + '月' + d.getDate() + '日' + d.getHours() + '时' + d.getMinutes() + '分'
  }
}

export function dataEncryption(params){
  // let timeStr = _getTime()
  // console.log(timeStr,'timeStr')
  let time = ''
  time = new Date($.ajax({type:'HEAD',async: false,cache: false}).getResponseHeader("Date")).getTime();
  console.log(time,'time')
  if(!time){
    time = new Date().getTime()
  }
  let obj = {
    'timestamp':time,
    'brandId':1,
  }
  let dataObj = Object.assign(params,obj)
  // let data = new Object()
  let arr = new Array()
  // console.log(dataObj)
  Object.keys(dataObj).sort().map(function(key){
    // console.log(typeof(dataObj[key]),'xinhuan')
    // 判断key值的类型，文件的过滤掉
    if(typeof(dataObj[key]) != 'object'  && dataObj[key] !== "" && dataObj[key] != undefined){
      // console.log(key,'是否进入判断',dataObj[key])
      // Object.assign(data,{key:dataObj[key]})
      // data[key] = dataObj[key]
      arr.push(
        key + '=' + dataObj[key]
      )
    }
  })
  console.log(arr.join('&'),'shujuqianming')
  // console.log(JSON.stringify(arr),'shujuqianming1')
  let str = md5(arr.join('&') + 'sjueyh234fn3m').toUpperCase()
  let objData = {
    'sign':str,
    'timestamp':time,
    'brandId':1,
  }
  return objData
}

export function checknumber (String) {
  var reg = /^[0-9]+.?[0-9]*$/
  if (reg.test(String)) {
    return true
  }
  return false
}

async function _getTime() {
  const time = await _getServeTime()
  console.log(time,'time')
  return time
}

let _getServeTime = ()=> new Promise((res,rej)=>{
    // let time = ''
    var xhr = new XMLHttpRequest();  
    if( !xhr ){  
      xhr = new ActiveXObject("Microsoft.XMLHTTP");  
    }  
    xhr.open("HEAD",location.href,true);  
    xhr.onreadystatechange = function(){  
      console.log(xhr,'xhr')
        if( xhr.readyState == 4 && xhr.status == 200 ){  
            //  alert(xhr.getResponseHeader("Date"));  
            // time = xhr.getResponseHeader("Date")
            res(xhr.getResponseHeader("Date"))
            // console.log(1)
        } else{
            // rej()
        } 
    }  
    xhr.send(null);
})

